#pragma once
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Weverything"
#pragma clang diagnostic warning "-Wextra"
#pragma clang diagnostic warning "-Wall"
#include "taihe/common.hpp"
#include "recorder.abi.h"
#include "taihe/string.hpp"
#define TH_EXPORT_CPP_API_initNative(CPP_FUNC_IMPL) \
    uintptr_t recorder_initNative_f(int32_t fd, struct TString videoCodecMime, int32_t width, int32_t height, double frameRate, int32_t isHDRVivid, int64_t bitRate) { \
        return ::taihe::into_abi<uintptr_t>(CPP_FUNC_IMPL(::taihe::from_abi<int32_t>(fd), ::taihe::from_abi<::taihe::string_view>(videoCodecMime), ::taihe::from_abi<int32_t>(width), ::taihe::from_abi<int32_t>(height), ::taihe::from_abi<double>(frameRate), ::taihe::from_abi<int32_t>(isHDRVivid), ::taihe::from_abi<int64_t>(bitRate))); \
    }
#define TH_EXPORT_CPP_API_startNative(CPP_FUNC_IMPL) \
    void recorder_startNative_f() { \
        return CPP_FUNC_IMPL(); \
    }
#define TH_EXPORT_CPP_API_stopNative(CPP_FUNC_IMPL) \
    uintptr_t recorder_stopNative_f() { \
        return ::taihe::into_abi<uintptr_t>(CPP_FUNC_IMPL()); \
    }
#pragma clang diagnostic pop
